package sosopkpk;

import java.util.Scanner;

public class J10SungJuk {
	// return 메서드를 이용한 성적 처리 프로그램
	// 주의 : Scanner 클래스를 이용해서 입력 처리하고
	// close()를 하게 되면 다시 Scanner 생성불가(reopen) 불가!
	// 입력값 : 이름, 국어점수, 영어점수, 수학점수
	// 변수 : 이름, 국어, 영어, 수학, 총점, 평균, 학점
	public static void main(String[] args) {
		// 변수 선언
		String name = "";
		int kor = 0, eng = 0, mat = 0, sum;
		double avg;
		char grd;
		String result = "";

		// 입력
		name = inputName(makeScanner());
		kor = inputKor(makeScanner());
		eng = inputEng(makeScanner());
		mat = inputMat(makeScanner());

		// 계산
		sum = getSum(kor, eng, mat);
		avg = getAverage(sum);
		grd = getGrade(avg);

		// 결과 출력
		result += "\n이름 : " + name + "\n점수 : " + kor + ", " + eng + ", " + mat
				+ "\n총점 : " + sum + "\n평균 : " + avg + "\n학점 : " + grd;
		System.out.println(result);

	} // main

	// 이름 입력
	public static String inputName(Scanner sc) {
		String name;
		System.out.println("이름은 입력하세요");
		name = sc.next();
		return name;
	} // inputName

	// Scanner 생성
	public static Scanner makeScanner() {
		Scanner sc = new Scanner(System.in);
		return sc;
	} // makeScanner

	// Scanner 소멸
	public static Scanner closeScanner(Scanner sc) {
		sc.close();
		return sc;
	} // closeScanner

	// 국어 점수 입력
	public static int inputKor(Scanner sc) {
		int kor;
		System.out.println("국어 점수를 입력하세요");
		kor = sc.nextInt();
		return kor;
	} // inputKor

	// 영어 점수 입력
	public static int inputEng(Scanner sc) {
		int eng;
		System.out.println("영어 점수를 입력하세요");
		eng = sc.nextInt();
		return eng;
	} // inputEng

	// 수학 점수 입력
	public static int inputMat(Scanner sc) {
		int mat;
		System.out.println("수학 점수를 입력하세요");
		mat = sc.nextInt();
		closeScanner(sc);
		return mat;
	} // inputMat

	// 총점 계산 메서드
	public static int getSum(int kor, int eng, int mat) {
		return kor + eng + mat;
	} // getSum

	// 평균 계산 메서드
	public static double getAverage(int sum) {
		return sum / 3;
	} // getAverage

	// 학점 계산 메서드
	public static char getGrade(double avg) {
		char grd;

		switch ((int) avg / 10) {
		case 10:
		case 9:
			grd = '수';
			break;
		case 8:
			grd = '우';
			break;
		case 7:
			grd = '미';
			break;
		case 6:
			grd = '양';
			break;
		default:
			grd = '가';
		}

		return grd;
	} // getGrade

} // class
